package org.example.myframework.frame.demo.controller;

import io.swagger.annotations.Api;
import org.example.myframework.frame.common.entity.R;
import org.example.myframework.frame.common.redis.utils.RedisShareLockUtil;
import org.example.myframework.frame.common.redis.utils.RedisUtil;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RequestMapping("/redis")
@RestController
@Api(value = "Redis接口", tags = {"Redis接口"})
public class TestRedisController {

    @Resource
    private RedisShareLockUtil redisShareLockUtil;

    @GetMapping("/testRedis")
    public R testRedis(@RequestParam String key, @RequestParam String value) {
        RedisUtil.set(key, value);
        return R.ok();
    }

    @GetMapping("/testRedisLock")
    public R testRedisLock() {
        // redisShareLockUtil.lock("lockKeyTest", "lockKeyTest", 10000L);
        // 一秒的锁
        // return redisShareLockUtil.lock("lockKeyTest", "lockKeyTest", 10000L) ? R.ok(): R.fail();
        return redisShareLockUtil.tryLock("lockKeyTest", "lockKeyTest", 1000000L) ? R.ok(): R.fail();
    }

}
